// P3406 海底高铁
// 题目真tm难读
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 10;
typedef long long LL;
int p[N]; // 记录每趟列车的停靠站
// int f[N]; // 错误，f[N]可能会超过int的范围
LL f[N]; // 记录每段铁路经过了几次
int n, m;

int main()
{
    cin >> n >> m;
    for(int i = 1;i <= m;i++) cin >> p[i];

    for(int i = 1;i < m;i++)
    {
        int l = p[i], r = p[i + 1];
        if(l > r) swap(l, r);
        f[l]++; f[r]--;
    }

    // 还原f数组
    for(int i = 1;i <= n;i++) f[i] += f[i - 1];
    
    LL ret = 0;
    for(int i = 1;i <= n;i++)
    {
        LL a, b, c;
        cin >> a >> b >> c;
        ret += min(a * f[i], c + b * f[i]);
    }

    cout << ret << endl;
    return 0;
}